package com.alibaba.citrus.cr.unified.inventory.functions.handler;

import com.alibaba.citrus.cr.unified.inventory.model.enums.ReceiveStatus;
import com.alibaba.citrus.cr.unified.inventory.model.enums.ShipStatus;
import com.epoch.app.crunifiedinventory.model.enums.AllocateOrderStatus;

import java.util.List;
import java.util.Map;

/**
 * @description:
 * @author: yuhw
 * @date: 2024年01月23日 10:58
 **/
public abstract class StatusCompute {

    public  AllocateOrderStatus computeStatus(ShipStatus shipStatus, ReceiveStatus receiveStatus){
        return process(shipStatus,receiveStatus,getStatusMap());
    }

    public abstract AllocateOrderStatus process(ShipStatus shipStatus,ReceiveStatus receiveStatus,
                                                Map<String,AllocateOrderStatus> statusMap);

    public abstract AllocateOrderStatus computeMainStatus(List<AllocateOrderStatus> statusList);

    public abstract Map<String,AllocateOrderStatus> getStatusMap();

}
